package com.fdb.efp.nls.service.dao.psd;

import com.fdb.efp.nls.service.vo.psd.PreNlsCreditInfoVO;
import com.fdb.efp.nls.service.domain.psd.PreNlsCreditInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 需求编号：【2019D1218】（普税贷需求）
 * 问题编号：【2019D1218】（若不是因为修复问题而新增该类，则留空）
 * 开发人员：【ludayong】
 * 创建日期：【2019/12/16 15:37】
 * 功能描述：
 */

public interface PreNlsCreditInfoDao {

    /**
     * 新增数据
     *
     * @param preNlsCreditInfo
     * @return
     */
    public int insertPreNlsCreditInfo(PreNlsCreditInfo preNlsCreditInfo);

    /**
     * 根据主键删除信息
     *
     * @param preNlsCreditInfo
     * @return
     */
    public int deleteByPk(PreNlsCreditInfo preNlsCreditInfo);

    /**
     * 根据主键更新信息
     *
     * @param preNlsCreditInfo
     * @return
     */
    public int updateByPk(PreNlsCreditInfo preNlsCreditInfo);

    /**
     * 根据主键查询详情
     *
     * @param preNlsCreditInfo
     * @return
     */
    public PreNlsCreditInfo queryByPk(PreNlsCreditInfo preNlsCreditInfo);

    /**
     * 一级数据权限,默认查看当前用户对应的数据
     *
     * @param preNlsCreditInfo
     * @return
     */
    public List<PreNlsCreditInfo> queryAllByLevelOneByPage(PreNlsCreditInfoVO preNlsCreditInfo);

    /**
     * 二级数据权限,默认查看当前用户及所属机构对应的数据
     *
     * @param preNlsCreditInfo
     * @return
     */
    public List<PreNlsCreditInfo> queryAllByLevelTwoByPage(PreNlsCreditInfoVO preNlsCreditInfo);

    /**
     * 三级数据权限,默认查看当前用户所在机构及下属机构对应的数据
     *
     * @param preNlsCreditInfo
     * @return
     */
    public List<PreNlsCreditInfo> queryAllByLevelThreeByPage(PreNlsCreditInfoVO preNlsCreditInfo);

    /**
     * 四级数据权限,默认预留，便于后续自定义
     *
     * @param preNlsCreditInfo
     * @return
     */
    public List<PreNlsCreditInfo> queryAllByLevelFourByPage(PreNlsCreditInfoVO preNlsCreditInfo);

    /**
     * 五级数据权限,默认预留，便于后续自定义
     *
     * @param preNlsCreditInfo
     * @return
     */
    public List<PreNlsCreditInfo> queryAllByLevelFiveByPage(PreNlsCreditInfoVO preNlsCreditInfo);

    /**
     * 需求编号：【2019D1218】（普税贷需求）
     * 问题编号：【2019D1218】（通过渠道申请号查询普税贷预授信申请信息）
     * 开发人员：【ludayong】
     * 创建日期：【2019/12/14 11:32】
     * 功能描述：
     * 修改日期：【2019/12/14 11:32】
     * 修改描述：
     */
    public PreNlsCreditInfo queryByChannelApplyNo(PreNlsCreditInfo preNlsCreditInfo);

    /**
     * 需求编号：【2019D1218】（普税贷需求）
     * 问题编号：【2019D1218】（通过全局流水号查询普税贷预授信申请信息）
     * 开发人员：【ludayong】
     * 创建日期：【2019/12/16 16:35】
     * 功能描述：
     * 修改日期：【2019/12/16 16:35】
     * 修改描述：
     */
    public PreNlsCreditInfo queryByGlobalSerno(PreNlsCreditInfo preNlsCreditInfo);

    /**
     * 需求编号：【2019D1218】（普税贷需求）
     * 问题编号：【2019D1218】（通过法定代表人证件信息和申请时间查询普税贷预授信申请信息）
     * 开发人员：【ludayong】
     * 创建日期：【2019/12/16 16:35】
     * 功能描述：
     * 修改日期：【2019/12/16 16:35】
     * 修改描述：
     */
    public List<PreNlsCreditInfo> queryByCertInfoAndApplyDate(PreNlsCreditInfoVO preNlsCreditInfo);

    /**
     * 需求编号：【2019D1218】（普税贷需求）
     * 问题编号：【2019D1218】（通过输入条件查询普税贷预授信申请信息）
     * 开发人员：【ludayong】
     * 创建日期：【2020/3/25 8:33】
     * 功能描述：
     * 修改日期：【2020/3/25 8:33】
     * 修改描述：
     */
    public List<PreNlsCreditInfo> queryByCondition(PreNlsCreditInfoVO preNlsCreditInfo);

    List<PreNlsCreditInfo> queryByTaxNumber(@Param("taxNumber") String taxNumber);
}
